home *** CD-ROM | disk | FTP | other *** search
/ Personal Computer World 2005 October / PCWOCT05.iso / Software / FromTheMag / XAMPP 1.4.14 / xampp-win32-1.4.14-installer.exe / xampp / phpMyAdmin / libraries / left.js < prev    next >
Text File  |  2004-06-23  |  7KB  |  263 lines

  1. /* $Id: left.js,v 2.3 2004/06/23 14:32:46 lem9 Exp $ */
  2.  
  3.  
  4. // These scripts were originally found on cooltype.com.
  5. // Modified 01/01/1999 by Tobias Ratschiller for linuxapps.com
  6.  
  7. // Modified 7th June 2000 by Brian Birtles for Mozilla 5.0
  8. // compatibility for phpMyAdmin
  9.  
  10. // Rewritten and put in a libray 2nd May 2001 by Lo∩c Chapeaux
  11.  
  12. // Test passed with:
  13. // - Mozilla 0.8.1 to 1.0-RC1 for Windows (js enabled & disabled)
  14. // - IE5, 5.01, 5.5, 6.0 for Windows
  15. // - Netscape 4.75 to 4.78 for Windows
  16.  
  17. // Test failed (crappy DOM implementations) with:
  18. // - Opera 5.02 for windows: 'getElementsByTagName' is unsupported
  19. // - Opera 5.10 to 6.01 for windows, Opera 5+ for Linux: 'style.display' can't
  20. //   be changed
  21. // - Konqueror 2+, 3: 'style.display' can't be changed
  22.  
  23.  
  24. var isExpanded   = false;
  25.  
  26. /**
  27.  * 2004-05-28: Michael Keck (mkkeck)
  28.  *             modified for theme manager
  29.  *             Please see left.php (line 264 and 265)
  30.  */
  31.  
  32. var imgOpened    = new Image(9,9);
  33. imgOpened.src    = imgUrlMinus;
  34.  
  35. var imgClosed    = new Image(9,9);
  36. imgClosed.src    = imgUrlPlus;
  37.  
  38.  
  39. /**
  40.  * Do reloads the frame if the window has been resized under Netscape4+
  41.  *
  42.  * @access  private
  43.  */
  44. function reDo() {
  45.   if (innerWidth != origWidth || innerHeight != origHeight)
  46.     location.reload(true);
  47. } // end of the 'reDo()' function
  48.  
  49. /**
  50.  * Positioned element resize bug under NS4+
  51.  */
  52. if (isNS4) {
  53.   var origWidth  = innerWidth;
  54.   var origHeight = innerHeight;
  55.   onresize       = reDo;
  56. }
  57.  
  58.  
  59. /**
  60.  * Gets the id of the first collapsible room
  61.  *
  62.  * @param  string  the name of the first collapsible room
  63.  *
  64.  * @return  integer  the index number corresponding to this room
  65.  *
  66.  * @access  public
  67.  */
  68. function nsGetIndex(el) {
  69.   var ind       = null;
  70.   var theLayers = document.layers;
  71.   var layersCnt = theLayers.length;
  72.   for (var i = 0; i < layersCnt; i++) {
  73.     if (theLayers[i].id == el) {
  74.       ind = i;
  75.       break;
  76.     }
  77.   }
  78.   return ind;
  79. } // end of the 'nsGetIndex()' function
  80.  
  81.  
  82. /**
  83.  * Positions layers under NS4+
  84.  *
  85.  * @access  public
  86.  */
  87. function nsArrangeList() {
  88.   if (typeof(firstInd) != 'undefined' && firstInd != null) {
  89.     var theLayers = document.layers;
  90.     var layersCnt = theLayers.length;
  91.     var nextY     = theLayers[firstInd].pageY + theLayers[firstInd].document.height;
  92.     for (var i = firstInd + 1; i < layersCnt; i++) {
  93.       if (theLayers[i].visibility != 'hide') {
  94.         theLayers[i].pageY = nextY;
  95.         nextY              += theLayers[i].document.height;
  96.       }
  97.     }
  98.   }
  99. } // end of the 'nsArrangeList()' function
  100.  
  101.  
  102. /**
  103.  * Expand databases at startup
  104.  *
  105.  * @access  public
  106.  */
  107. function nsShowAll() {
  108.   var theLayers = document.layers;
  109.   var layersCnt = theLayers.length;
  110.   for (i = firstInd; i < layersCnt; i++) {
  111.     theLayers[i].visibility = 'show';
  112.   }
  113. } // end of the 'nsShowAll()' function
  114.  
  115.  
  116. /**
  117.  * Collapses databases at startup
  118.  *
  119.  * @access  public
  120.  */
  121. function initIt()
  122. {
  123.   if (!capable || !isServer)
  124.     return;
  125.  
  126.   var tempColl    = null;
  127.   var tempCollCnt = null;
  128.   var i           = 0;
  129.  
  130.   if (isDOM) {
  131.     tempColl    = document.getElementsByTagName('DIV');
  132.     tempCollCnt = tempColl.length;
  133.     for (i = 0; i < tempCollCnt; i++) {
  134.       if (tempColl[i].id == expandedDb)
  135.         tempColl[i].style.display = 'block';
  136.       else if (tempColl[i].className == 'child' || tempColl[i].className == 'child nowrap')
  137.         tempColl[i].style.display = 'none';
  138.     }
  139.   } // end of the DOM case
  140.   else if (isIE4) {
  141.     tempColl    = document.all.tags('DIV');
  142.     tempCollCnt = tempColl.length;
  143.     for (i = 0; i < tempCollCnt; i++) {
  144.       if (tempColl(i).id == expandedDb)
  145.         tempColl(i).style.display = 'block';
  146.       else if (tempColl(i).className == 'child' || tempColl(i).className == 'child nowrap')
  147.         tempColl(i).style.display = 'none';
  148.     }
  149.   } // end of the IE4 case
  150.   else if (isNS4) {
  151.     var theLayers  = document.layers;
  152.     var layersCnt  = theLayers.length;
  153.     for (i = 0; i < layersCnt; i++) {
  154.       if (theLayers[i].id == expandedDb)
  155.         theLayers[i].visibility   = 'show';
  156.       else if (theLayers[i].id.indexOf('Child') != -1)
  157.         theLayers[i].visibility   = 'hide';
  158.       else
  159.         theLayers[i].visibility   = 'show';
  160.     }
  161.     nsArrangeList();
  162.   } // end of the NS4 case
  163. } // end of the 'initIt()' function
  164.  
  165.  
  166. /**
  167.  * Collapses/expands a database when the user require this to be done
  168.  *
  169.  * @param  string  the name of the database to act on
  170.  * @param  boolean whether to expand or to collapse the database content
  171.  *
  172.  * @access  public
  173.  */
  174. function expandBase(el, unexpand)
  175. {
  176.   if (!capable)
  177.     return;
  178.  
  179.   var whichEl = null;
  180.   var whichIm = null;
  181.  
  182.   if (isDOM) {
  183.     whichEl = document.getElementById(el + 'Child');
  184.     whichIm = document.getElementById(el + 'Img');
  185.     if (whichEl.style.display == 'none' && whichIm) {
  186.       whichEl.style.display  = 'block';
  187.       whichIm.src            = imgOpened.src;
  188.     }
  189.     else if (unexpand) {
  190.       whichEl.style.display  = 'none';
  191.       whichIm.src            = imgClosed.src;
  192.     }
  193.   } // end of the DOM case
  194.   else if (isIE4) {
  195.     whichEl = document.all(el + 'Child');
  196.     whichIm = document.images.item(el + 'Img');
  197.     if (whichEl.style.display == 'none') {
  198.       whichEl.style.display  = 'block';
  199.       whichIm.src            = imgOpened.src;
  200.     }
  201.     else if (unexpand) {
  202.       whichEl.style.display  = 'none';
  203.       whichIm.src            = imgClosed.src;
  204.     }
  205.   } // end of the IE4 case
  206.   else if (isNS4) {
  207.     whichEl = document.layers[el + 'Child'];
  208.     whichIm = document.layers[el + 'Parent'].document.images['imEx'];
  209.     if (whichEl.visibility == 'hide') {
  210.       whichEl.visibility  = 'show';
  211.       whichIm.src         = imgOpened.src;
  212.     }
  213.     else if (unexpand) {
  214.       whichEl.visibility  = 'hide';
  215.       whichIm.src         = imgClosed.src;
  216.     }
  217.     nsArrangeList();
  218.   } // end of the NS4 case
  219. } // end of the 'expandBase()' function
  220.  
  221.  
  222. /**
  223.  * Hilight/un-hilight a database when the mouse pass over/out it
  224.  *
  225.  * @param  string  the name of the database to act on
  226.  * @param  boolean the color to be used
  227.  *
  228.  * @access  public
  229.  */
  230. function hilightBase(el, theColor)
  231. {
  232.   if (!isDOM && !isIE4) {
  233.     return null;
  234.   }
  235.  
  236.   var whichDb     = null;
  237.   var whichTables = null;
  238.  
  239.   if (isDOM) {
  240.     whichDb       = document.getElementById(el + 'Parent');
  241.     whichTables   = document.getElementById(el + 'Child');
  242.   }
  243.   else if (isIE4) {
  244.     whichDb       = document.all(el + 'Parent');
  245.     whichTables   = document.all(el + 'Child');
  246.   }
  247.  
  248.   if (typeof(whichDb.style) == 'undefined') {
  249.     return null;
  250.   }
  251.   else if (whichTables) {
  252.     whichDb.style.backgroundColor     = theColor;
  253.     whichTables.style.backgroundColor = theColor;
  254.   }
  255.   else {
  256.     whichDb.style.backgroundColor     = theColor;
  257.   }
  258.  
  259.   return true;
  260. } // end of the 'hilightBase()' function
  261.  
  262. window.onload = initIt;
  263.